<!DOCTYPE html>
<html>
<head>
	<title></title>
	<link rel="stylesheet" type="text/css" href="../公用CSS文件/all.css" />
	<meta charset="utf-8">
	<script type="text/javascript" src="../js/jquery.min.js"></script> 	<script type="text/javascript" src="../js/js.js"></script>
</head>
<body>
<div class="dt">GD库概念</div>
<ul>
	<li>GD库是php处理图形的扩展库，使用时需要在php配置文件中打开gd（版本号）.dll前面的注释，dll是动态链接库，在该注释打开后，一些内置函数被激活，可以用这些函数进行图形绘制</li>
</ul>
<div class="dt">GD库定义画布和颜色</div>
<ul>
	<li>imagecreate（）函数，创建图像，仅仅支持三原色0-255的颜色，与真彩图像用法类似，传入图像宽高</li>
	<li>imagecreatetruecolor（）函数，创建真彩图像，传入图像的宽度和高度，成功返回图像资源，失败返回false</li>
	<li>imagecreatefromjpeg（）函数，使用已有图片作为画布，传入图片路径</li>
</ul>
<div class="dt">GD库使用必须注意的格式</div>
<ul>
	<li>imagecolorallocate（）函数，定义图像中的颜色块，传入图像资源，三原色红绿蓝int数值（分成3个参数对应传值），该函数的返回值是一个指向该颜色设置的索引int值<mark>php绘制图形所有颜色有关的都要用到这个，简直丧心病狂，学html+css直接定义真不行么</mark></li>
	<li>header（'content-type:image/png'），声明图像类型<mark>在输出图像之前，必须声明图片类型</mark></li>
	<li>image.$图片类型（）方法，生成图像存储至服务器并输出至脚本<mark>如果没有输出，图像不会被显示，而是将创建参数存储在图像所占的内存中</mark></li>
	<li>imagedestroy（），传入资源，销毁与图片关联的内存，一般传入gd库create语句创建的画布资源</li>
</ul>
</ul>
<div class="dt">GD库图形填充</div>
<ul>
	<li>imagefill（），传入图像资源、X轴偏移位置数值、Y数值、imagecolorallocate（）函数颜色块<mark>imagefill() 在 image 图像的坐标 x，y（图像左上角为 0, 0）处用 color 颜色执行区域填充（即与 x, y 点颜色相同且相邻的点都会被填充）。</mark></li>
	<li>画布如果不设置颜色默认为黑</li>
</ul>
<div class="dt">绘制图形</div>
<ul>
	<li>imageline（）函数，传入图像资源、起始X位置、Y位置、终止X位置、Y位置、imagecolorallocate函数分配的颜色<mark>绘制点就是起始坐标和终止坐标相同的线，虽然参数写的很烦</mark></li>
	<li>imagerectangle（）函数，绘制矩形，参数形式上和imageline相同，但意义和函数操作它们的方式不一样</li>
	<li>imageellipse（）函数，同上，绘制椭圆，也可以绘制圆，圆就是最大直径和最小直径相等的圆</li>
	<li>imagearc（）函数，绘制弧形，参数参考php官网</li>
	<li>imagefilledellipse（）函数，绘制一个填充的圆形，参数形式类似imageellipse，不止是线条有颜色，还会自动填充</li>
	<li><a href='http://www.php.cn/php-weizijiaocheng-354184.html'>其他基本图形绘制</a>或者参照官网<a href="http://php.net/manual/zh/book.image.php" target="blank">image函数</a></li>
</ul>
<div class="dt">加入文字</div>
<ul>
	<li>imagettftext（）函数，传入图像资源、字体尺寸（float）、旋转角度int数值、X轴位置、Y轴位置、颜色块、字体文件路径、要写入的文本</li>
	<li>imagestring（）函数，水平画一行字符串，传入图像资源，字体尺寸，起始X，Y，字符串，定义颜色，字体文件路径</li>
</ul>

<div class="dt">扩展库测试</div>
<ul>
	<li>可以使用extension_loaded（）函数来检测一个库是否被加载，传入库的名称字符串<mark>检测GD库是否被加载，传入字符串'gd'</mark></li>
	<!-- <li></li> -->
</ul>
<div class="dt">附注信息</div>
<ul>
	<li>gd库中的宽高三原色参数都是传入int数值，三原色都是分开为红绿蓝三个参数</li>
	<li>GB库中使用设置颜色都是使用imagecolorallacate（）函数的返还值，而不是直接设置（想不通这种设置是为了什么）</li>
	<li>GD库代码运行在用户可以看到的地方，频繁被刷新，所以生成图片的操作会很频繁，因此每次运行都要在图片展示出来后清理掉服务器的图片内存</li>
	<li>GD库中使用imagepng（）这类函数进行输出之前，必须要使用header（'content-type:image/png'）先声明图片的类型（不懂有了后缀为什么还要声明，而且header这样的使用违反了官方资料header函数的语法，因为GB图片肯定不是web页面的第一次输出，但测试必须使用）</li>
	<li>GD库中涉及位置的XY轴，必须是int类型</li>
	<li>GD库在数个函数运行中不能输出字符串等</li>
</ul>

</body>
</html>